もう一点。
等差数列では変化率dがunに無関係なので問題ないのだが、変化率が変数に依存する場合(ほとんどの場合はこれ)、Δtの取り方に気を付けなければならない。
右の図は0に減衰する式(r>0)
 |
すなわち |
 |
の、Δtの値を大きくしていったときの挙動を示したものです(r=1)。
Δt = 0.1のときが、この微分方程式の正しい答えです。
ところがΔtを大きくしていくと奇妙な振る舞いを始めてしまいます。
Δt·r < 1ならば(大体)正しい答えを出します。
その意味はこういうことです。
緩慢な反応(rが小さい)ならば、途中を端折っても(Δtが大)予測できるけど、速い反応(rが大きい)では、ちょっと先(Δtが小)のことしか予測できない、ということ。
はじめてプログラミングするとき計算結果が変になるのは大抵この辺が原因です。
|